<template>
  <view>
    <web-view :src="attachmentUrl"></web-view>
  </view>
</template>

<script lang="ts">
export default {
  data() {
    return {
      attachmentUrl: "",
    };
  },
  onLoad(options: { attachmentUrl: string }) {
    // 获取并解析附件 URL
    const infoUrl = decodeURIComponent(options.attachmentUrl);

    // 定义允许的文件类型
    const allowedTypes = [
      "txt",
      "pdf",
      "ppt",
      "doc",
      "docx",
      "xls",
      "xlsx",
      "zip",
      "7z",
      "rar",
    ];

    // 获取文件扩展名
    const arr = infoUrl.split(".");
    const fileType = arr[arr.length - 1].toLowerCase(); // 转为小写，避免大小写不一致

    // 判断文件类型是否在允许的类型列表中
    if (allowedTypes.includes(fileType)) {
      // 允许的文件类型直接传给 WebView 进行展示
      this.attachmentUrl = infoUrl;
    } else {
      // 其他文件类型使用微软 Office 在线查看器（如 Office 文档）
      this.attachmentUrl = `http://view.officeapps.live.com/op/view.aspx?src=${encodeURIComponent(
        infoUrl
      )}`;
    }
  },
};
</script>

<style scoped lang="scss"></style>
